SQL SELECT statement
Home

SQL SELECT statement

SQL SELECT statement

In het vorige deel is er uitgelegd hoe je gegevens moet inserten. Wat echter nog veel belangrijker is, is het ophalen of selecteren van de gegevens!

Probleem

Nu we rijen aan de tabel Boeken hebben toegevoegd zijn we natuurlijk nieuwsgierig of de gegevens wel degelijk in de tabel staan.

Oplossing

Met het SELECT statement kunnen we de inhoud van de tabel Boeken opvragen. De rijen worden gertourneerd in tabelvorm:

select * from Boeken;

De asterix in het SELECT statement is een joker (wildcard). Daarmee wordt aangegeven dat we alle kolommen in de tabel willen selecteren. Je kan ook de kolomnaam opgeven die je wilt selecteren:

use JefInghelbrecht;
select Titel from Boeken;

In het resultaat venster zie je alleen de titels van de boeken.

Je kan ook meerdere kolommen opgeven die je door komma’s van elkaar scheidt:

use JefInghelbrecht;
select Titel, Voornaam, Familienaam from Boeken;

De rijen worden in tabelvorm teruggegeven.

Als je intellisence wilt gebruiken kan je de naam van de tabel als prefix meegeven:

use JefInghelbrecht;

select Boeken.Titel, Boeken.Voornaam, Boeken.Familienaam from Boeken;

In het SELECT statement kan je optionele clausules gebruiken. De meest gebruikte is ORDER BY. Daarmee kan je de geselecteerd rijen orderen op één of meer kolommen. Bijvoorbeeld:

use JefInghelbrecht;
select Voornaam, Familienaam, Titel from Boeken order by Familienaam, Titel;

De auteurs zijn alfabetische gerangschikt op familienaam. De auteur Beth heeft twee boeken en de titels ervan zijn ook alfabetisch geordend:

In een volgend hoofdstuk gaan uitgebreid in op de overige optionele clausules van het SELECT statement met name WHERE, GROUP BY en HAVING. Voorlopig houden we het bij de twee verplichte clausules SELECT en FROM en de veel gebruikte optionele clausule ORDER BY.

Functies

-- ji
-- 9 september 2013
-- bestandsnaam: BoekenSelectInitialenEnTitel.sql
use JefInghelbrecht;
select Titel, Voornaam, Familienaam from Boeken order by Titel;

select Titel, Voornaam, Familienaam from Boeken order by Familienaam, Titel;

-- om alleen de initalen te tonen, we starten
-- met het eerste karakter en we nemen 1 karakter.
-- Begint niet met 0, zoals je dat verwacht
-- bij een array string in C#
select Titel, substring(Voornaam, 1, 1),
   substring(Familienaam, 1, 1)
   from Boeken order by Familienaam, Titel;

-- om de initialen en een punt erachter te tonen
-- daarvoor gebruiken we 'string concatenation',
-- het aan elkaar plakken van strings
select Titel, substring(Voornaam, 1, 1) + '.' from Boeken order by Titel, Voornaam;

De AS clausule

Het SQL statement retourneert de initialen en de titel van het boek. Maar de koptekst van de kolom met initialen zegt niet veel.

-- JI
-- Selecteer initialen en titel van het boek
-- 17 maart 2016
use _12694JefInghelbrecht;
select substring(Voornaam, 1, 1) + '.' 
   + substring(Familienaam, 1, 1) + '.',
   Titel
   from Boeken;

We kunnen de AS clausule gebruiken om een eigen leesbare kolomkop te geven aan een kolom. Als er spaties in de naam staan, zet je de naam tussen enkelvoudige aanhalingstekens.

-- JI
-- Selecteer initialen en titel van het boek
-- 17 maart 2016
use _12694JefInghelbrecht;

select substring(Voornaam, 1, 1) + '.'
   + substring(Familienaam, 1, 1) + '.'as Initialen,
   Titel
   from Boeken;

SQL is een volwaardige programmeertaal. De vraag die ke kunt stellen is om zoiets client- for serverside moet gebeuren.

JI

2020-01-19 11:43:09